Methods and apparatus for generating navigation information on the fly

ABSTRACT

Methods and apparatus for utilizing navigation seek points in a media presentation are disclosed. A stream of media presentation data including program content of interest is received and decoded and content of interest is made available to a user. After the program content of interest has been made available to the user for viewing, navigation information is received and communicated to the user.

RELATED APPLICATIONS

[0001] This patent application is a continuing patent application ofU.S. patent application Ser. No. 09/932,806, filed Aug. 17, 2001.

TECHNICAL FIELD

[0002] The present disclosure is directed to video presentationtransmission and, more particularly, to methods and apparatus forgenerating navigation information on the fly.

BACKGROUND

[0003] Many digitized moving picture systems use the well-knownprotocols and formats developed by the Moving Pictures Experts Group,generically referred to as MPEG. Various versions of these protocolshave been developed, and are referred to as MPEG-1, MPEG-2, etc. In anMPEG system, compressed video and audio data is packetized intoelementary streams wrapped inside packet headers that containinformation necessary to decompress the individual streams duringplayback. These individual audio and video elementary streams can befurther assembled, or multiplexed, into a single stream with timinginformation in the packet headers that identify the time at which thecontents of each packet should be presented. In this way, video packetscan be synchronized with audio packets during playback. MPEG systems usetwo basic types of multiplexed streams, namely, Program Streams (PS) andTarget Streams (TS). Program Streams are targeted primarily for storagemedia. Transport Streams are targeted primarily for transmission.Transport Streams have a potentially higher error rate associated withdata transmission.

[0004] In encoders of MPEG systems, audio and video are individuallycompressed and packetized. A multiplexer then combines the individualpackets into a PS or TS. On the decoder side, the packets are retrievedfrom the stream by a demultiplexer, individual packets are depacketizedand decompressed, and synchronization between audio and video isachieved by using the appropriate fields in the PS or TS headers.Decoding is typically performed on the fly (i.e., dynamically) as theaudio/video is played back. The packets are time-stamped, allowing theplayback can be manipulated to perform such functions as: movingdirectly to specified portions of the audio and/or video presentation,pausing, playing only audio or only video, playing audio in differentlanguages, etc., while maintaining proper synchronization. These andsimilar functions are collectively referred to as navigation. Generatingnavigation data for an MPEG stream is conventionally performed duringthe encoding operation, and is placed into the MPEG stream in the formof navigation packets.

[0005] Previously, particularly-relevant points in the MPEG data streamwere selected to be navigation points or links that were presented to auser on a display screen, such as a television that was also displayingdecoded program content. The viewer could then select one of thenavigation points from the display and have the audio and videoassociated with the selected navigation point presented to the viewer.However, conventionally the navigation points were generated prior tobroadcast of the MPEG stream and were transmitted at substantially thesame time as the MPEG stream. Accordingly, in prior systems, programcontent had always been stored and previewed before it was broadcast sothat the navigation points could be generated and broadcast with theMPEG stream including the program content.

BRIEF DESCRIPTION OF THE DRAWINGS

[0006]FIGS. 1 and 2 are block diagrams of example communication systems.

[0007]FIG. 3 is a block diagram of the example encoders of FIGS. 1 and2.

[0008]FIG. 4 is a block diagram of the example navigation generator ofFIG. 1.

[0009]FIG. 5 is a block diagram of the example decoder/players of FIGS.1 and 2.

[0010]FIG. 6 is a block diagram of the example playback stack of FIG. 5.

[0011]FIG. 7 is a block diagram of the example seek point controller ofFIG. 6.

[0012]FIG. 8 is an example display view including navigation seek pointspresented to a user of the decoder/player of FIGS. 1 and 2.

[0013]FIG. 9 is flow diagram of an example compose navigation databaseprocess.

[0014]FIG. 10 is a flow diagram of an example playback process.

DETAILED DESCRIPTION

[0015]FIG. 1 shows a block diagram of an example end-to-end system 1including an encoder 10 coupled to a navigation generator 20 that isfurther coupled to a decoder/player 30. The system 1 is used to create anavigation database and an audio/video datastream, such as, for example,an MPEG stream including audio and video information. In the disclosedexample, the encoder 10 receives audio and video data, compresses thereceived data to reduce the storage space and bandwidth required by thatdata, packetizes the compressed data into audio and video packets, andmultiplexes the packets together into an MPEG stream that is coupled tothe navigation generator 20.

[0016] The navigation generator 20, as described below in conjunctionwith FIG. 4, includes information from a composer (e.g., a user whomanually enters navigation data while viewing a video presentation andwho is typically located at a broadcast operation center (BOC)),examines the MPEG stream received from the encoder 10, and produces anassociated navigation database containing navigation metadata forperforming navigation functions on the MPEG stream. The particularnavigation functions that are performed are specified by the composerinputs.

[0017] Alternatively, as shown in the example alternative end-to-endsystem 2 of FIG. 2, the encoder 10 provides information to an automaticnavigation generator 40. The automatic navigation generator 40automatically generates the navigation database by analyzing the contentof the MPEG stream and identifying desired points in the MPEG streambased on predefined criteria. In this alternative example, thenavigation generator 40 produces a navigational database using anautomated process rather than relying on direct user inputs to specifywhich parts of the MPEG stream are identified in the navigationaldatabase.

[0018] The output of either the generator 20 or the generator 40 iscoupled to the decoder/player 30 to allow a user to select variousportions of the MPEG stream for playback based on the data in thenavigation database. The selected portions are demultiplexed,depacketized, and decompressed by the decoder/player 30 to produce thedesired video and/or audio outputs (e.g., for playing, for viewing, forlistening and/or recording). The navigation data in the navigationdatabase can be used to produce these outputs and/or to create specialeffects such as pause/resume, freeze-frame, fast playback, and slowplayback, as well as to provide a user the ability to jump to aparticular location in the programming.

[0019] In the examples of FIGS. 1 and 2, the functions of decoding andplaying are integrated into the decoder/player 30. In another example,the decoder and player are separate units, and the decoded datadeveloped by the decoder is stored and/or transmitted to the player by atransmitter (not shown) for presentation. In an example, the functionsof the encoder 10, the generator 20, and the decoder/player 30 areperformed at different times and on different platforms, and one or morestorage media are used to hold the data stream and/or navigationdatabase until the next stage is ready to receive that data. Forexample, the encoder 10 may store the encoded data stream before passingencoded data stream to the generator 20. Additionally or alternatively,the generator 20 may hold, or store, navigation database informationuntil such information is passed to the decoder/player 30.

[0020]FIG. 3 illustrates an example encoder 10. The encoder 10 could belocated at a BOC for a Video-on-Demand network, for example. In theexample of FIG. 3, a raw video signal is provided to a video encoder 11and a raw audio signal is provided to an audio encoder 12. According tothe disclosed example, the video and audio signals are digitized beforepresentation to the encoders 11, 12. However, in another example, theencoders 11, 12 could include analog-to-digital converters and,therefore, could accommodate the input of analog signals. The video datais compressed through any known video compression algorithm by the videoencoder 11. Similarly, the audio data is compressed through any knownaudio compression algorithm by the audio encoder 12. For example, theencoders could perform MPEG compression or any other suitable type ofcompression.

[0021] The compressed video data from the video encoder 11 is segmentedinto packets with predefined sizes, formats, and protocols by a videopacketizer 13 while the compressed audio data from the audio the encoder12 is segmented into packets with predefined sizes, formats, andprotocols by the audio packetizer 14. Each packet developed by the videopacketizer 13 and/or the audio packetizer 14 may be referred to as anaudio/video packetized elementary stream (A/V PES) and contains timinginformation, such as, for example, a presentation time stamp (PTS) thatidentifies where in the playback presentation the data in the packetshould be placed. The playback operation later synchronizes the videoand audio packets in the proper timing relationships by matching uptiming information from various packets.

[0022] In the foregoing examples, the audio data may contain multipleaudio tracks, such as voice tracks in different languages for a movie.Each audio track uses the same relative timing data and, therefore, eachpacket is identified by a sequence number or other identifier. Asdescribed below in detail, the navigation data uses these sequencenumbers to identify particular packets for playback thereby permittingselection of the audio packets for the desired audio track. Person ofordinary skill in the art will readily appreciate that the navigationdata can also use the packet identifiers to permit mixing specifiedvideo and specified audio in other predetermined ways during playback.

[0023] In the example of FIG. 3, the packets produced by the packetizers13, 14 are combined into a single data stream by a multiplexer 15. Themultiplexer 15, which receives a system time clock input, may be, forexample, a program stream multiplexer or a transport stream multiplexer.The multiplexed data may contain additional information related totiming and/or contents, and may follow an MPEG-2 transport protocol.

[0024] In the illustrated example, the MPEG stream is stored in anoptional storage device 16 before being provided to the navigationgenerator 20. The storage device 16 may be internal or external to theencoder 10, and may utilize a portable medium such as, but not limitedto, a compact disk, read only memory (CD-ROM) or a digital versatiledisk (DVD). The data stream may be written directly into storage device16, or may be transmitted through a transmission medium before beingstored. Regardless of the particular configuration of the storage device16, the MPEG stream may be read out of the storage device 16 fortransmission to the navigation generator 20. Alternatively, the optionalstorage device 16 may be completely eliminated and, therefore, the MPEGstream may not be stored at all.

[0025] An example navigation generator 20 is illustrated in FIG. 4. Inthe illustrated example, the navigation generator 20 includes anauthoring tool 21. The authoring tool 21 is used to examine the MPEGstream and to generate navigation information identifying content ofinterest in the MPEG data stream. The authoring tool 21 may beimplemented in hardware, software and/or firmware or in any othersuitable combination thereof. The authoring tool 21 is responsive tonavigation configuration information 24, which includes a file ofdesired seek points in the MPEG stream as defined by composer inputs 23.The composer is typically a person who views the MPEG stream content andmanually records the seek points in the file according to a predefinedformat, which is discussed below. In an example, the composer specifiesthe composer inputs through a keyboard, by pointing to icons on a screenwith a mouse or other pointing device, or by any other data inputdevice. Additionally or alternatively, the authoring tool 21 may beprogrammed to search through the MPEG stream in various ways to locateand define desired seek points. In an example, the authoring toolexamines the timing information of the packets.

[0026] In some examples, the authoring tool 21 may be interactive,thereby allowing personnel at the BOC to view the MPEG encodedprogramming as it is broadcast to viewers. For example, the authoringtool 21 may be embodied in a workstation or any other suitable computerinstallation that allows personnel at the BOC to identify portions ofthe broadcast programming that are of interest as the MPEG stream isbroadcast. Accordingly, personnel at the BOC view the programming atsubstantially the same time as the viewers and the personnel at the BOCsurmise the events in the programming that the viewers will findinteresting and will want to review at a later time. For example,considering a baseball game, personnel at the BOC watch the MPEG streamdelivering the baseball game programming content at approximately thesame time the viewers view the content. As the BOC personnel and theviewers watch the game, a player from the home team hits a homerun. Atthat point, the BOC personnel controls the authoring tool 21 to make anindication that an event of interest has occurred. The indication of theinteresting event is translated into a navigation file that is broadcastto the viewer's location to identify the content of interest. At somelater time, (e.g., between innings of the baseball game), the viewersmay select a link that causes their receiver/decoder to present theaudio and video of the home run. To permit this on the fly insertion ofnavigation seek points, there may be a delay (e.g., 3 minutes) betweenthe time the BOC personnel are provided with the MPEG stream and thebroadcast time of that MPEG stream.

[0027] While the foregoing example is pertinent to a baseball game inparticular and, in general, sporting events, those having ordinary skillin the art will readily recognize that other programming events could beanalyzed at the BOC as they are watched by viewers and, subsequently,navigation information could be provided to each user. Additionally, itwill be readily appreciated by those having ordinary skill in the artthat the application of the disclosed system is not limited only to liveevents such as sporting events. To the contrary, the disclosed systemcould be used for previously-recorded programs stored at the BOC thathave not had navigation information generated by the BOC until theprogram is broadcast. However, the application to live broadcasts isparticularly advantageous.

[0028] In another example, the MPEG stream may include a videopresentation such as a digitized movie or other video sequence. In suchan example, the composer-inputted criteria may be seek points that arelocated specified amounts of time after the movie starts, or may bepoints that divide the movie into a specified number of equal timesegments.

[0029] After the content of interest has been identified, the authoringtool 21 locates a video intraframe (I-frame) that is closest to eachspecified part of the MPEG presentation of which a seek point isdesired, and identifies that I-frame, or the packet containing thatI-frame, as the requested point in the MPEG sequence. The identifiedpoints and corresponding I-frames divide the data stream into labeledsegments. In this example, I-frames are used as reference pointsbecause, unlike predicted frames (P-frames) or bi-directional frames(B-frames), they are self-contained video images that do not depend onprevious or subsequent frames for their reconstruction.

[0030] In the example of FIG. 4, the navigation data generated by theauthoring tool 21 is placed into one or more navigation files 22. Unlikeconventional systems that encode navigation data into the MPEG stream,the navigation file(s) 22 of FIG. 4 are separate files from the filesholding the MPEG stream and are broadcast after the MPEG stream isbroadcast. Both navigation file(s) 22 and the associated MPEG stream maybe stored at the BOC until needed for playback although they may remainas separate files. In the example illustrated in FIG. 4, both thenavigation file(s) 22 and the MPEG stream are stored in the storagedevice 26 (e.g., a hard drive). The storage device 26 may be internal orexternal to the navigation generator 20, and may include a fixed orportable medium. Alternatively, the navigation files 22 and theassociated MPEG stream may be broadcast “on-the-fly” to client devicesby a transmitter (not shown) over a transmission medium.

[0031] In an example, the navigation file comprises two files. The firstfile is an Extensible Markup Language (XML) file or some otherpre-defined file format. The first file contains chapter times,positions and labels, and audio/video stream packet ID's and labels. Itmay also include timing information, titles for scenes in the mediapresentation, bitmap files for the scenes, and I-frame location in thestream. The second file is a binary file referred to as an I-frame indexfile. The second file contains the presentation time and file offset ofthe packet corresponding to each video I-frame. The I-frame index fileis used for video trick modes, such as fast forward and fast reverse.Additionally, the I-frame index may be used to provide a user theability to jump to particular locations in the presentation and may alsobe used as a quick-scan source for locating specific time points in thepresentation. The navigation files (including seek points), and the MPEGstream, are read out and broadcast (or simply broadcast in the case of“on-the-fly” broadcast during play of the media presentation) to clientdevices.

[0032]FIG. 5 shows an example client device 30 for playing all or aportion of the MPEG stream. A playback stack 31 reads the navigationfiles 22 and presents navigation options to the display 34. Such optionsmay include chapters available, chapter labels, etc. A playback control33 is adapted to provide input data to the playback stack 31 to identifythe portions or segments of the MPEG stream that are to be selected by aviewer for presentation. The playback stack 31 responds to input datafrom the playback control 33 by reading the navigation files to identifywhere in the MPEG stream requested segments of the presentation arelocated. The selected MPEG segments are then read from the playbackstack 31 and presented to the decoder 32, where they are decoded andplayed on one or more media players. The illustrated example shows mediaplayers such as a display 34 for presenting video data and a speaker 35for presenting audio data.

[0033] As shown in FIG. 6, the example playback stack 31 includes anintelligent reception system 54, an internal mass storage device 56 forstoring the MPEG data stream and the navigation files and a seek pointcontroller 58. The intelligent reception system 54, which may beimplemented as software, hardware and/or firmware, controls whether tostore navigation file(s) and whether to associate the file with the MPEGstream content. The intelligent reception system 54 may be used, forexample, only to allow subscribers of the system wishing seek pointfunctionality to have access to navigation information. Additionally oralternatively, the intelligent reception system 54 may be used to allowonly viewers of a particular program or viewers who have expressedinterest in a particular program to receive and view the navigationfiles associated with that program. The mass storage device 56 may be ahard drive, an optical disk and its associated optical drive,semiconductor memory or any other memory device. In any of the foregoingexamples, the navigation file(s) may be encrypted by the encoder 10 anddecrypted by the intelligent reception system 54 of the payingsubscriber. Alternatively, the navigation files may be unencrypted.

[0034] The seek point controller 58 enables a user of the client device30 to use the navigation seek points to navigate within the MPEG mediapresentation. The seek point controller 58 may be located within theplayback stack 31, as shown, or may be located external to the playbackstack 31, and may be implemented as software, firmware and/or hardwareor any suitable combination thereof. When implemented as software orfirmware, for example, the seek point controller 58 could be anadditional application stack added to an existing playback device.

[0035] An example seek point controller 58 is illustrated in detail inFIG. 7. In this example, the seek point controller 58 includes acontroller/selector 62 that receives an input of I-frame data andnavigation file information from the intelligent reception system 54.The navigation file information includes the navigation seek points. Thecontroller/selector 62 reads or parses the file(s) 22, which includesstored seek points or locations, and outputs the navigation points to auser's media playing device (e.g., either visual display 34, audiospeaker 35 or both) via a seek point output device 68.

[0036] The seek point output device 68 formats the navigation seekpoints for visual display on a user's visual display 34. Additionally,audio data concerning the seek points may also be formatted and outputfor audio indication of the navigation seek points to the audio speaker35, for example. The control output block 64 of the seek pointcontroller 58 also controls the mass storage device 56 to control theflow of information from the mass storage device 56 to the decoder 32.For example, seek point information and MPEG stream portions may beoutput from the mass storage device 56 to the decoder 32 forpresentation on the display 34 (FIG. 5).

[0037] The receiver 66 of the seek point controller 58 receivesinformation from the playback control 33, such as, for example, a remotecontrol, and passes the information on to the controller/selector 62.The information received by the receiver 66 may include indications oflinks that a viewer desires to select. Accordingly, the informationpassed to the receiver 66 is used to control, via the control output 64,the MPEG stream information passed from the mass storage device 56 tothe decoder 32.

[0038] An example of a navigation display presented to a user isillustrated in FIG. 8. As shown, the display 34 includes a programviewing area 70 in which programming information such as televisionshows may be presented. The display 34 also includes a number ofsections of navigation seek point information, as shown at referencenumerals 72-78. While the navigation seek point information and theprogramming information are shown as occupying two separate areas of thedisplay 34, those having ordinary skill in the art will readilyrecognize that this arrangement is just one example arrangement becausethe information may be presented together, such as by overlaying onetype of information over the other. The navigation seek pointinformation displayed at reference numerals 72-78 may be textual, butmay also include, for example, image and audio information. Of course,as will be readily appreciated by those having ordinary skill in theart, the navigation seek point information is not limited to display inthe locations denoted with reference numeral 72-78. To the contrary, thelocations denoted with reference numerals 72-78 are merely examples oflocations at which the navigation seek point information may bedisplayed.

[0039] After the navigation seek point data is displayed to the user,the user may input a selection of a seek point. Returning to FIGS. 6 and7, such a selection is sent from the playback control 33 to the receiver66 within the seek point controller 58 of the playback stack 31. Thereceiver 66 may also be configured to accept other data from theplayback control 33, such as commands to move graphical indications,such as cursors, on the display of which navigation seek point isdesired. In this way, the user is presented with a graphical userinterface to graphically move between different seek points tofacilitate selection of a particular seek point.

[0040] Once a navigation seek point selection is received by thereceiver 66 from the playback control 33, the selection is communicatedto the controller/selector 62 to affect presentation of the desiredportion of the MPEG media presentation. The controller/selector 62correlates the selected seek point with the particular I-frame carryingthe corresponding portion of the media selection by addressing thenavigation database. The controller/selector 62 then commands thecontrol output 64 to relay the selection information, including thestarting I-frame, to the playback stack 31. In response, the playbackstack 31 accesses the MPEG data from the mass storage device 56corresponding to the selected portion of the media presentation andserves up the MPEG data to the display 34 and/or speaker 35 through thedecoder 32. Thus, the disclosed playback system permits a client/user tojump within an MPEG media presentation to portions of the presentationthat the user wants to playback through visually or audibly presentednavigation seek points.

[0041]FIG. 9 is a flow chart of an example process 80 for composing anavigation database. The process 80 of FIG. 9 is, for example,implemented in the authoring tool 21 (FIG. 4), at which BOC personnel(e.g., an operator) can view the MPEG stream to display the programmingcontent of the MPEG stream (block 82). As the operator views theprogramming, the operator waits for content of interest to be displayed(block 84). If no content of interest is displayed (block 84), theoperator continues to view the programming (block 82). If, however,content of interest is presented to the operator (block 84), theoperator makes an identification of the content of interest (block 86).The identification could include the operator selecting a link providedon the authoring tool 21, depressing a button provided on the authoringtool 21 or making a time notation by hand and later keying the timeinformation into the authoring tool 21. Both the start and end time ofthe content of interest may be indicated.

[0042] After the operator has identified the time of the content ofinterest, the authoring tool selects an MPEG I-frame having a timestampclose to the identified time (block 88). The I-frame is selected becauseI-frames include all visual information necessary to generate an image(i.e., I-frames are not relative frames dependent on other frames forvisual content information). After the I-frame is identified (block 88),the I-frame is stored in a navigation file (block 90), as is the I-framefile offset and the presentation time stamp (PTS). The navigation fileis then transmitted to viewers watching the programming (block 92). Anindication of the end of the identified content of interest may also bestored in the navigation information. In the disclosed example, thenavigation file is broadcast after viewers have had the opportunity towatch the programming content in the MPEG stream. Alternatively oradditionally, the navigation file may be transmitted to allreceiver/decoders so that the receiver decoders can store the navigationfile in the event that a viewer later tunes to programming related tothe navigation file.

[0043] The navigation file in the disclosed example is separate from anyfile containing all or part of the MPEG stream itself, and may even bestored in a separate medium from the MPEG stream. Additionally, themetadata in the navigation file may also contain one or more of timinginformation, titles for scenes of the MPEG media presentation, bitmap orMPEG data for displaying images corresponding to particular scenes ofthe MPEG presentation and I-frame location.

[0044] If there is more content to view (block 94), the authoring tool21 continues to display programming (block 82). In the alternative, ifthere is no more programming content to view (block 94), the process 80may end execution or may return control to any routine that called theprocess 80.

[0045] In the foregoing example, an operator at the BOC was described asselecting content of interest. However, persons of ordinary skill in theart will recognize that content of interest could be identified atlocations other than at the BOC and that the content of interest couldbe identified in an automated manner without operator interaction. Forexample, software or hardware could be adapted to identify content ofinterest by monitoring video information in the MPEG stream. Forexample, the authoring tool 21 could be automated to detect instantreplays contained in sporting event broadcasts and could, therefore,identify the instant replays as content of interest.

[0046] Having described examples of how navigation information isidentified and broadcast, attention is now turned to a process 100 (FIG.10) for playing back portions of the MPEG stream associated with thenavigation information. The process 100 may be implemented by theplayback stack 31 (FIG. 5). During the playback process 100, thenavigation information is displayed to the viewer watching theprogramming to which the navigation information corresponds (block 102).For example, as shown in FIG. 8, the navigation information may bedisplayed in areas denoted with the reference numerals 72-78.Additionally or alternatively, navigation information related to otherprogramming content may be stored for later use.

[0047] After the navigation information is displayed (block 102), theprocess 100 determines if a viewer has selected any of the navigationinformation presented on the display (block 104). If the viewer has notselected any of the navigation information (block 104), real timeprogramming continues to be displayed (block 106). If, however, a viewerhas selected the navigation information (block 104), real timeprogramming is interrupted (block 108) and the frames associated withthe selected navigation information are recalled (block 110). Theprogram content beginning with the information represented by theI-frame associated with the selected navigation information are thenpresented to the viewer (block 112) until the end of the programmingcontent associated with the selected navigation information is reached(block 114). When the end of the programming associated with theselected navigation information is reached (block 114), real timeprogramming is again displayed (block 106).

[0048] Although the foregoing describes real time programming as beingdisplayed (block 106), it will be readily appreciated by those havingordinary skill in the art that other pre-recorded programming could bedisplayed. For example, if a user were watching an hour long program andwanted to re-watch the first 30 minutes of the program, which, forexample, took 10 minutes, the user could either resume watching the realtime programming that is at minute 40 or could resume watching theprogram from minute 30 from a recording thereof. Accordingly, resumingto real time programming is merely one example of content that may bedisplayed after a user navigates to view stored information.

[0049] The disclosed example may be implemented in circuitry or as amethod. The disclosed example may also be implemented as information orinstructions stored on media, which may be read and executed by at leastone processor to perform the functions described herein. Amachine-readable medium may include any mechanism for storing ortransmitting information in a form readable by a machine (e.g., acomputer). For example, a machine-readable medium may include read onlymemory (ROM); random access memory (RAM); magnetic disk storage media;optical storage media; flash memory devices; electrical, optical,acoustical or other forms of propagated signals (e.g., carrier waves,infrared signals, digital signals, etc.), and others.

[0050] From the foregoing, persons of ordinary skill in the art willappreciate that the disclosed examples permit navigational data to begenerated from an encoded data stream, thus allowing creation of anavigation database after the MPEG data has been compressed, packetized,and multiplexed. The data stream contains video and/or audio data thathas been compressed and packetized according to any of various knownformats and protocols such as any of the MPEG formats. The navigationdata permits selective retrieval of portions of the data stream forplayback by identifying packets or other portions of the data streamthat are associated with navigation points (i.e., points in apresentation carried in the data stream that the user may wish to accessquickly and begin playing). Navigation data may also include data thatenables special effects or trick modes, such as fast forward or fastreverse. In addition, the navigation information provides the viewer theability to jump to particular point in the data stream.

[0051] The configuration information in the navigation database includesinformation on the particular points identified in the navigationdatabase. These points and/or the associated information may bespecified by a user. Alternately, the configuration data in thenavigation database may be generated automatically. The data in thenavigation database, which contains data about other data, may bereferred to as navigation metadata. The navigation database may be keptseparately from the MPEG stream.

[0052] Although certain apparatus and methods have been describedherein, the scope of coverage of this patent is not limited thereto. Onthe contrary, this patent covers all embodiments of the teachings of theinvention fairly falling within the scope of the appended claims, eitherliterally or under the doctrine of equivalents.

What is claimed is:
 1. A method for utilizing navigation information ina media presentation, the method comprising: receiving a stream of mediapresentation data including program content of interest; decoding thestream of media presentation data and making the program content ofinterest available to a user; receiving navigation informationrepresentative of the program content of interest after the programcontent of interest has been made available to the user; andcommunicating the navigation information to the user.
 2. A method asdefined by claim 1, wherein the navigation information comprises apointer to a video frame.
 3. A method as defined by claim 2, wherein thevideo frame comprises a motion pictures expert group (MPEG) I-frame. 4.A method as defined by claim 1, further comprising receiving a selectioninput from the user, wherein the selection input corresponds to selectednavigation information.
 5. A method as defined by claim 4, furthercomprising making the program content of interest available to the userin response to the selection of the navigation information.
 6. A methodas defined in claim 4, further comprising: identifying a starting pointin the stream of media presentation data associated with the selectednavigation information; processing the stream of media presentation databeginning at the starting point; and presenting to the user at least aportion of the processed stream of media presentation data.
 7. A methodas defined by claim 1, further comprising storing the navigationinformation.
 8. A method as defined by claim 7, wherein the navigationinformation is stored if a program including the program content ofinterest is being viewed by the user when the navigation information isreceived.
 9. A method as defined by claim 7, wherein the navigationinformation is stored if a program including the program content ofinterest has been designated by the user.
 10. A receiving apparatuscomprising: a playback stack configured to receive a stream of mediapresentation data including program content of interest; a decodercoupled to the playback stack and the display device, the decoder beingconfigured to decode the stream of media presentation data and to passthe decoded information to the display device to display the programcontent of interest; and a seek point controller configured to receivenavigation information representative of the program content of interestafter the decoder has passed the decoded information to a display deviceand to pass the navigation! information to the decoder.
 11. A receivingapparatus as defined by claim 10, further comprising a storage deviceconfigured to store the stream of media presentation data and thenavigation information.
 12. A receiving apparatus as defined by claim10, wherein the navigation information comprises a pointer to a videoframe.
 13. A receiving apparatus as defined by claim 12, wherein thevideo frame comprises a motion pictures expert group (MPEG) I-frame. 14.A receiving apparatus as defined by claim 10, wherein the seek pointcontroller is further configured to receive a selection input from theuser, wherein the selection input corresponds to selected navigationinformation.
 15. A receiving apparatus as defined by claim 14, whereinthe seek point controller is further configured to make the programcontent of interest available to the user in response to the selectionof the navigation information.
 16. A receiving apparatus as defined inclaim 14, wherein the seek point controller is further configured to:identify a starting point in the stream of media presentation dataassociated with the selected navigation information; and provide to thedecoder the stream of media presentation data beginning at the startingpoint.
 17. A receiving apparatus as defined by claim 10, wherein theplayback stack is further configured to store the navigationinformation.
 18. A receiving apparatus as defined by claim 17, whereinthe playback stack is configured to store the navigation information ifa program including the program content of interest is being viewed bythe user when the navigation information is received.
 19. A receivingapparatus as defined by claim 18, wherein the playback stack isconfigured to store the navigation information if a program includingthe program content of interest has been designated by the user.
 20. Astorage medium storing information configured to cause an apparatus to:receive a stream of audio/video presentation data including programcontent of interest; decode the stream of the audio/video presentationdata and to make the program content of interest available to a user;receive navigation data representative of the program content ofinterest after the program content of interest has been made availableto the user; and communicate the navigation data to the user.
 21. Astorage medium as defined by claim 20, wherein the navigation datacomprises a pointer to a video frame.
 22. A storage medium as defined byclaim 21, wherein the video frame comprises a motion pictures expertgroup (MPEG) I-frame.
 23. A storage medium as defined by claim 20,wherein the information is further configured to cause the apparatus toreceive a selection input from the user, wherein the selection inputcorresponds to selected navigation data.
 24. A storage medium as definedby claim 23, wherein the information is further configured to cause theapparatus to make the program content of interest available to the userin response to the selection of the navigation data.
 25. A storagemedium as defined in claim 23, wherein the information is furtherconfigured to cause the apparatus to: identify a starting point in thestream of audio/video presentation data associated with the selectednavigation data; process the stream of audio/video presentation databeginning at the starting point; and present to the user at least aportion of the processed stream of audio/video presentation data.
 26. Astorage medium as defined by claim 20, wherein the information isfurther configured to cause the apparatus to store the navigation data.27. A storage medium as defined by claim 26, wherein the information isfurther configured to cause the apparatus to store the navigation dataif a program including the program content of interest is being viewedby the user when the navigation data is provided to the apparatus.
 28. Astorage medium as defined by claim 26, wherein the information isfurther configured to cause the apparatus to store the navigation dataif a program including the program content of interest has beendesignated by the user.
 29. A method of delivering informationcomprising: producing an encoded video signal including content ofinterest; producing an encoded audio signal; receiving the encoded videoand audio signals as the encoded video and audio signals are distributedfor presentation to users; generating navigation information in responseto the content of interest in the encoded video and audio signals; anddistributing the navigation information to users after the encoded videoand audio signals are distributed for presentation to users.
 30. Amethod as defined by claim 29, wherein the navigation informationcomprises a formatted file.
 31. A method as defined by claim 30, whereinthe formatted file is an Extensible Markup Language file.
 32. A methodas defined by claim 30, wherein the navigation information comprisesvideo information including at least one of text data of a listing of areference to the content of interest, images indicative of the contentof interest and audio information indicative of the content of interest.33. A method as defined by claim 29, further including presentingcontent of the encoded video and audio signals to personnel.
 34. Amethod as defined by claim 33, wherein further including allowing thepersonnel to indicate when the content of interest is manifest to thepersonnel.
 35. An information delivery system comprising: a videoencoder configured to receive a video signal and to produce an encodedvideo signal; an audio encoder configured to receive an audio signal andto produce an encoded audio signal; an authoring tool configured toreceive the encoded video and audio signals as the encoded video andaudio signals are distributed for presentation to users, the authoringtool being further configured to generate navigation information inresponse to content of interest in the encoded video and audio signalsand to distribute the navigation information to users.
 36. Aninformation delivery system as defined by claim 35, wherein thenavigation information comprises a formatted file.
 37. An informationdelivery system as defined by claim 36, wherein the formatted file is anExtensible Markup Language file.
 38. An information delivery system asdefined by claim 36, wherein the navigation information comprises videoinformation including at least one of text data of a listing of areference to the content of interest, images indicative of the contentof interest and audio information indicative of the content of interest.39. An information delivery system as defined by claim 35, wherein theauthoring tool comprises an audio and video display device thatmanifests content of the encoded video and audio signals to personnel.40. An information delivery system as defined by claim 39, wherein theauthoring tool further comprises an input device allowing the personnelto indicate when the content of interest is manifest to the personnel.41. An information delivery system as defined by claim 40, wherein theauthoring tool comprises a computing device and wherein the input devicecomprises a keyboard.
 42. An information delivery system as defined byclaim 40, wherein the authoring tool comprises a computing device andwherein the input device comprises a mouse.
 43. A storage medium storinginformation configured to cause an apparatus to: receive encoded videoand audio signals as the encoded video and audio signals are distributedfor presentation to users; generate navigation information in responseto content of interest in the encoded video and audio signals; anddistribute the navigation information to users after the encoded videoand audio signals are distributed for presentation to users.
 44. Astorage medium as defined by claim 43, wherein the navigationinformation comprises a formatted file.
 45. A storage medium as definedby claim 44, wherein the formatted file is an Extensible Markup Languagefile.
 46. A storage medium as defined by claim 44, wherein thenavigation information comprises video information including at leastone of text data of a listing of a reference to the content of interest,images indicative of the content of interest and audio informationindicative of the content of interest.
 47. A storage medium as definedby claim 43, wherein the instructions are further configured to causethe apparatus to manifests content of the encoded video and audiosignals to personnel.
 48. A storage medium as defined by claim 47,wherein the instructions are further configured to cause the apparatusto receive from the personnel an indication when the content of interestis manifest to the personnel.
 49. A method of delivering informationcomprising: producing an encoded video signal of a live event includingcontent of interest; producing an encoded audio signal of the liveevent; delaying the transmission of the encoded video and audio signalsof the live event while generating navigation information in response tothe content of interest in the encoded video and audio signals; anddistributing the navigation information to users.
 50. A method asdefined by claim 49, further comprising distributing the navigationinformation to users as the encoded video and audio signals aredistributed to users.
 51. A method as defined by claim 49, wherein thenavigation information comprises a formatted file.
 52. A method asdefined by claim 51, wherein the formatted file is an Extensible MarkupLanguage file.
 53. A method as defined by claim 51, wherein thenavigation information comprises video information including at leastone of text data of a listing of a reference to the content of interest,images indicative of the content of interest and audio informationindicative of the content of interest.
 54. A method as defined by claim49, further including presenting content of the encoded video and audiosignals to personnel.
 55. A method as defined by claim 54, whereinfurther including allowing the personnel to indicate when the content ofinterest is manifest to the personnel.
 56. An information distributionsystem comprising: a video encoder configured to receive a video signalincluding content of interest and to produce an encoded video signal; anaudio encoder configured to receive an audio signal and to produce anencoded audio signal; a transmission component configured to distributefor presentation to a user the encoded audio and video signals; anauthoring tool configured to receive the encoded video and audio signalsas the encoded video and audio signals are distributed for presentationto users, the authoring tool being further configured to generatenavigation information in response to content of interest in the encodedvideo and audio signals and to distribute the navigation information tothe user via the transmission component; a playback stack configured toreceive the encoded video including the content of interest and toreceive the encoded audio signal; a decoder coupled to the playbackstack and the display device, the decoder being configured to decode theencoded video and audio signals and to pass the decoded information tothe display device to display the program content of interest; and aseek point controller configured to receive the navigation informationrepresentative of the program content of interest after the decoder haspassed the decoded information to the display device and to pass thenavigation information to the decoder.
 57. A system as defined by claim56, wherein the playback stack is further configured to store thenavigation data.
 58. A system as defined by claim 57, wherein theplayback stack is configured to store the navigation data if a programincluding the program content of interest is being viewed by the userwhen the navigation information is provided to the playback stack.
 59. Asystem as defined by claim 57, wherein the playback stack is configuredto store the navigation data if a program including the program contentof interest has been designated by the user.